﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework;
using PloobsEngine.Entity;
using PloobsEngine.MessageSystem;
using PloobsEngine.SceneControl;

namespace PloobsEngine.Cameras
{
    public interface ICamera : IEntity, IRecieveMessageEntity
    {
        void Serialize(System.Xml.XmlTextWriter textWriter);
        void DeSerialize(System.Xml.XmlNode node, EngineStuff engine, IWorld world);
        bool Hasmoved { get; }
        Vector3 Position { get; set; }
        Vector3 Target { get; set; }
        Vector3 Up { get; set; }
        Quaternion Rotation { get; set; }
        float FieldOfView { get; set; }
        float AspectRatio { get; set; }
        float NearPlane { get; set; }
        float FarPlane { get; set; }
        Matrix View { get; }
        Matrix Projection { get; }
        BoundingFrustum BoundingFrustum { get; }
        BoundingBox BoundingBox   { get; }
        void Update(GameTime gt);
        String Name { get; set; }

   }

        
}

